Skip to content

Conversation

@oncsr
Copy link
Contributor

@oncsr oncsr commented May 9, 2025

🧷 문제 링크

https://www.acmicpc.net/problem/20297

🧭 풀이 시간

30분

👀 체감 난이도

✏️ 문제 설명

$N$개의 정점으로 구성된 가중치 없는 트리가 주어진다. 트리 상의 두 정점 사이의 거리는 두 정점 사이의 간선의 개수로 정의한다.

각 정점에는 수가 적혀 있으며, 적어도 두 정점은 같은 값임이 보장된다. 이때, 서로 같은 값이 쓰여 있는 두 정점 쌍 중 가장 거리가 가까울 때의 거리를 구해보자.

🔍 풀이 방법

[사용한 알고리즘]

  • Map
  • Smaller to Larger

리프 노드에서부터 올라오며 (정점 고윳값, 거리)를 Map으로 관리한다.
두 정점 사이의 거리를 구해야 하기 때문에, 거리를 저장할 때는 가장 짧은 거리 두 개만 저장한다.
Map을 합칠 때는 Smaller to Larger로 합쳐준다.

⏳ 회고

센트로이드를 공부하고 연습 문제로 풀려했는데,
정작 센트로이드 없이 푸는 게 더 직관적인 것 같다.

@oncsr oncsr added the success 👍 해설을 보지 않고 풀었을 때 label May 9, 2025
@ShinHeeEul ShinHeeEul merged commit 5246e89 into main May 9, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

success 👍 해설을 보지 않고 풀었을 때

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants